
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta charset="utf-8" />
    <title>Introduction to atomman: LAMMPS functionality &#8212; atomman 1.4.0 documentation</title>
    <link rel="stylesheet" href="../_static/basic.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <script crossorigin="anonymous" integrity="sha256-Ae2Vz/4ePdIu6ZyI/5ZGsYnb+m0JlOmKPjt6XZ9JJkA=" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js"></script>
    <script async="async" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
    <script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"inlineMath": [["$", "$"], ["\\(", "\\)"]], "processEscapes": true, "ignoreClass": "document", "processClass": "math|output_area"}})</script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Introduction to atomman: LAMMPS Potentials" href="2.1._Potential_class.html" />
    <link rel="prev" title="Introduction to atomman: Settings and Library" href="1.5._Settings_and_databases.html" /> 
  </head><body>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="2.1._Potential_class.html" title="Introduction to atomman: LAMMPS Potentials"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="1.5._Settings_and_databases.html" title="Introduction to atomman: Settings and Library"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">atomman 1.4.0 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Tutorials</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  
<style>
/* CSS for nbsphinx extension */

/* remove conflicting styling from Sphinx themes */
div.nbinput.container div.prompt *,
div.nboutput.container div.prompt *,
div.nbinput.container div.input_area pre,
div.nboutput.container div.output_area pre,
div.nbinput.container div.input_area .highlight,
div.nboutput.container div.output_area .highlight {
    border: none;
    padding: 0;
    margin: 0;
    box-shadow: none;
}

div.nbinput.container > div[class*=highlight],
div.nboutput.container > div[class*=highlight] {
    margin: 0;
}

div.nbinput.container div.prompt *,
div.nboutput.container div.prompt * {
    background: none;
}

div.nboutput.container div.output_area .highlight,
div.nboutput.container div.output_area pre {
    background: unset;
}

div.nboutput.container div.output_area div.highlight {
    color: unset;  /* override Pygments text color */
}

/* avoid gaps between output lines */
div.nboutput.container div[class*=highlight] pre {
    line-height: normal;
}

/* input/output containers */
div.nbinput.container,
div.nboutput.container {
    display: -webkit-flex;
    display: flex;
    align-items: flex-start;
    margin: 0;
    width: 100%;
}
@media (max-width: 540px) {
    div.nbinput.container,
    div.nboutput.container {
        flex-direction: column;
    }
}

/* input container */
div.nbinput.container {
    padding-top: 5px;
}

/* last container */
div.nblast.container {
    padding-bottom: 5px;
}

/* input prompt */
div.nbinput.container div.prompt pre {
    color: #307FC1;
}

/* output prompt */
div.nboutput.container div.prompt pre {
    color: #BF5B3D;
}

/* all prompts */
div.nbinput.container div.prompt,
div.nboutput.container div.prompt {
    width: 4.5ex;
    padding-top: 5px;
    position: relative;
    user-select: none;
}

div.nbinput.container div.prompt > div,
div.nboutput.container div.prompt > div {
    position: absolute;
    right: 0;
    margin-right: 0.3ex;
}

@media (max-width: 540px) {
    div.nbinput.container div.prompt,
    div.nboutput.container div.prompt {
        width: unset;
        text-align: left;
        padding: 0.4em;
    }
    div.nboutput.container div.prompt.empty {
        padding: 0;
    }

    div.nbinput.container div.prompt > div,
    div.nboutput.container div.prompt > div {
        position: unset;
    }
}

/* disable scrollbars on prompts */
div.nbinput.container div.prompt pre,
div.nboutput.container div.prompt pre {
    overflow: hidden;
}

/* input/output area */
div.nbinput.container div.input_area,
div.nboutput.container div.output_area {
    -webkit-flex: 1;
    flex: 1;
    overflow: auto;
}
@media (max-width: 540px) {
    div.nbinput.container div.input_area,
    div.nboutput.container div.output_area {
        width: 100%;
    }
}

/* input area */
div.nbinput.container div.input_area {
    border: 1px solid #e0e0e0;
    border-radius: 2px;
    /*background: #f5f5f5;*/
}

/* override MathJax center alignment in output cells */
div.nboutput.container div[class*=MathJax] {
    text-align: left !important;
}

/* override sphinx.ext.imgmath center alignment in output cells */
div.nboutput.container div.math p {
    text-align: left;
}

/* standard error */
div.nboutput.container div.output_area.stderr {
    background: #fdd;
}

/* ANSI colors */
.ansi-black-fg { color: #3E424D; }
.ansi-black-bg { background-color: #3E424D; }
.ansi-black-intense-fg { color: #282C36; }
.ansi-black-intense-bg { background-color: #282C36; }
.ansi-red-fg { color: #E75C58; }
.ansi-red-bg { background-color: #E75C58; }
.ansi-red-intense-fg { color: #B22B31; }
.ansi-red-intense-bg { background-color: #B22B31; }
.ansi-green-fg { color: #00A250; }
.ansi-green-bg { background-color: #00A250; }
.ansi-green-intense-fg { color: #007427; }
.ansi-green-intense-bg { background-color: #007427; }
.ansi-yellow-fg { color: #DDB62B; }
.ansi-yellow-bg { background-color: #DDB62B; }
.ansi-yellow-intense-fg { color: #B27D12; }
.ansi-yellow-intense-bg { background-color: #B27D12; }
.ansi-blue-fg { color: #208FFB; }
.ansi-blue-bg { background-color: #208FFB; }
.ansi-blue-intense-fg { color: #0065CA; }
.ansi-blue-intense-bg { background-color: #0065CA; }
.ansi-magenta-fg { color: #D160C4; }
.ansi-magenta-bg { background-color: #D160C4; }
.ansi-magenta-intense-fg { color: #A03196; }
.ansi-magenta-intense-bg { background-color: #A03196; }
.ansi-cyan-fg { color: #60C6C8; }
.ansi-cyan-bg { background-color: #60C6C8; }
.ansi-cyan-intense-fg { color: #258F8F; }
.ansi-cyan-intense-bg { background-color: #258F8F; }
.ansi-white-fg { color: #C5C1B4; }
.ansi-white-bg { background-color: #C5C1B4; }
.ansi-white-intense-fg { color: #A1A6B2; }
.ansi-white-intense-bg { background-color: #A1A6B2; }

.ansi-default-inverse-fg { color: #FFFFFF; }
.ansi-default-inverse-bg { background-color: #000000; }

.ansi-bold { font-weight: bold; }
.ansi-underline { text-decoration: underline; }


div.nbinput.container div.input_area div[class*=highlight] > pre,
div.nboutput.container div.output_area div[class*=highlight] > pre,
div.nboutput.container div.output_area div[class*=highlight].math,
div.nboutput.container div.output_area.rendered_html,
div.nboutput.container div.output_area > div.output_javascript,
div.nboutput.container div.output_area:not(.rendered_html) > img{
    padding: 5px;
    margin: 0;
}

/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */
div.nbinput.container div.input_area > div[class^='highlight'],
div.nboutput.container div.output_area > div[class^='highlight']{
    overflow-y: hidden;
}

/* hide copybtn icon on prompts (needed for 'sphinx_copybutton') */
.prompt a.copybtn {
    display: none;
}

/* Some additional styling taken form the Jupyter notebook CSS */
div.rendered_html table {
  border: none;
  border-collapse: collapse;
  border-spacing: 0;
  color: black;
  font-size: 12px;
  table-layout: fixed;
}
div.rendered_html thead {
  border-bottom: 1px solid black;
  vertical-align: bottom;
}
div.rendered_html tr,
div.rendered_html th,
div.rendered_html td {
  text-align: right;
  vertical-align: middle;
  padding: 0.5em 0.5em;
  line-height: normal;
  white-space: normal;
  max-width: none;
  border: none;
}
div.rendered_html th {
  font-weight: bold;
}
div.rendered_html tbody tr:nth-child(odd) {
  background: #f5f5f5;
}
div.rendered_html tbody tr:hover {
  background: rgba(66, 165, 245, 0.2);
}
</style>
<div class="section" id="Introduction-to-atomman:-LAMMPS-functionality">
<h1>Introduction to atomman: LAMMPS functionality<a class="headerlink" href="#Introduction-to-atomman:-LAMMPS-functionality" title="Permalink to this headline">¶</a></h1>
<p><strong>Lucas M. Hale</strong>, <a class="reference external" href="mailto:lucas&#46;hale&#37;&#52;&#48;nist&#46;gov?Subject=ipr-demo">lucas<span>&#46;</span>hale<span>&#64;</span>nist<span>&#46;</span>gov</a>, <em>Materials Science and Engineering Division, NIST</em>.</p>
<p><a class="reference external" href="http://www.nist.gov/public_affairs/disclaimer.cfm">Disclaimers</a></p>
<div class="section" id="1.-Introduction">
<h2>1. Introduction<a class="headerlink" href="#1.-Introduction" title="Permalink to this headline">¶</a></h2>
<p>This Notebook provides an introduction to interacting with LAMMPS using atomman by working through a demonstration simulation.</p>
<p><strong>Library Imports</strong></p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[1]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Standard libraries</span>
<span class="kn">from</span> <span class="nn">pathlib</span> <span class="k">import</span> <span class="n">Path</span>
<span class="kn">import</span> <span class="nn">datetime</span>

<span class="c1"># http://www.numpy.org/</span>
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>

<span class="c1"># http://matplotlib.org/</span>
<span class="kn">import</span> <span class="nn">matplotlib.pyplot</span> <span class="k">as</span> <span class="nn">plt</span>
<span class="o">%</span><span class="k">matplotlib</span> inline

<span class="c1"># https://github.com/usnistgov/atomman</span>
<span class="kn">import</span> <span class="nn">atomman</span> <span class="k">as</span> <span class="nn">am</span>
<span class="kn">import</span> <span class="nn">atomman.lammps</span> <span class="k">as</span> <span class="nn">lmp</span>
<span class="kn">import</span> <span class="nn">atomman.unitconvert</span> <span class="k">as</span> <span class="nn">uc</span>

<span class="c1"># Show atomman version</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;atomman version =&#39;</span><span class="p">,</span> <span class="n">am</span><span class="o">.</span><span class="n">__version__</span><span class="p">)</span>

<span class="c1"># Show date of Notebook execution</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Notebook executed on&#39;</span><span class="p">,</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">())</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
atomman version = 1.4.0
Notebook executed on 2021-08-04
</pre></div></div>
</div>
</div>
<div class="section" id="2.-Interatomic-Potential-Control">
<h2>2. Interatomic Potential Control<a class="headerlink" href="#2.-Interatomic-Potential-Control" title="Permalink to this headline">¶</a></h2>
<p>LAMMPS is capable of using a wide array of interatomic potential styles, which are defined through a combination of LAMMPS commands and potential parameter files. In atomman, the LAMMPS commands can be automatically generated using the Potentials class and structured data model files.</p>
<div class="section" id="2.1.-Load-potential-from-database">
<h3>2.1. Load potential from database<a class="headerlink" href="#2.1.-Load-potential-from-database" title="Permalink to this headline">¶</a></h3>
<p>Any LAMMPS-compatible potential in the NIST Interatomic Potentials Repository can be loaded/downloaded using load_lammps_potential().</p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[2]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Load potential based on its unique ID</span>
<span class="n">pot_id</span> <span class="o">=</span> <span class="s1">&#39;2015--Pascuet-M-I--Al--LAMMPS--ipr1&#39;</span>
<span class="n">potential</span> <span class="o">=</span> <span class="n">am</span><span class="o">.</span><span class="n">load_lammps_potential</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="n">pot_id</span><span class="p">,</span> <span class="n">getfiles</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="2.2.-Potential-parameter-files">
<h3>2.2. Potential parameter files<a class="headerlink" href="#2.2.-Potential-parameter-files" title="Permalink to this headline">¶</a></h3>
<p>Setting getfiles=True will copy/download the potential parameter files from the local/remote library database to the current working directory in a subfolder matching the potential’s id.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[3]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">Path</span><span class="p">(</span><span class="n">pot_id</span><span class="p">)</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">):</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span>
    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">fname</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
        <span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
    <span class="nb">print</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam
re(1,1) =   2.86378
attrac(1,1) = 0.39558
repuls(1,1) = 0.09806
Cmin(1,1,1) = 1.00769
Cmax(1,1,1) = 2.31407
#
rc = 5.0
delr = 0.1
augt1 = 1


2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam
# References:
# elt        lat     z       ielement     atwt
# alpha      b0      b1      b2           b3    alat    esub    asub
# t0         t1              t2           t3            rozero  ibar
#
&#39;Al&#39;        &#39;fcc&#39;   12.     13           26.9815
  4.68604   1.56205   5.39270   5.29601  -1.00047   4.05000   3.35999   1.06859
1.0  -1.54917  -1.28508  10.01041 1.0 0


</pre></div></div>
</div>
</div>
<div class="section" id="2.3.-lammps.Potential-Class">
<h3>2.3. lammps.Potential Class<a class="headerlink" href="#2.3.-lammps.Potential-Class" title="Permalink to this headline">¶</a></h3>
<p>The load_lammps_potential() function returns a Potential object that can be used to explore properties of the potential and generate LAMMPS input commands.</p>
<p>Basic properties can be directly obtained.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[4]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Show that basic properties can be directly obtained</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;str(potential) -&gt;       &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.units -&gt;      &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">units</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.atom_style -&gt; &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">atom_style</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.pair_style -&gt; &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">pair_style</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.symbols -&gt;    &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">symbols</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.elements() -&gt; &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">elements</span><span class="p">())</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.masses() -&gt;   &#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">.</span><span class="n">masses</span><span class="p">())</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
str(potential) -&gt;        potential_LAMMPS record named 2015--Pascuet-M-I--Al--LAMMPS--ipr1
potential.units -&gt;       metal
potential.atom_style -&gt;  atomic
potential.pair_style -&gt;  meam
potential.symbols -&gt;     [&#39;Al&#39;]
potential.elements() -&gt;  [&#39;Al&#39;]
potential.masses() -&gt;    [26.9815]
</pre></div></div>
</div>
<p>The LAMMPS command lines for the potential are auto-generated based on a list of symbols corresponding to LAMMPS atom types. This fully works for all LAMMPS pair_styles, with only the hybrid and hybrid/overlay styles having limitations.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[5]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="s1">&#39;potential.pair_info() -&gt;&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">potential</span><span class="o">.</span><span class="n">pair_info</span><span class="p">())</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
potential.pair_info() -&gt;
print &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;
print &#34;Publication(s) related to the potential:&#34;
print &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;
print &#34;Parameter file(s) can be downloaded at:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;
pair_style meam
pair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam Al
mass 1 26.9815


</pre></div></div>
</div>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[6]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="s2">&quot;potential.pair_info([&#39;Al&#39;, &#39;Al&#39;, &#39;Al&#39;]) -&gt;&quot;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">potential</span><span class="o">.</span><span class="n">pair_info</span><span class="p">([</span><span class="s1">&#39;Al&#39;</span><span class="p">,</span> <span class="s1">&#39;Al&#39;</span><span class="p">,</span> <span class="s1">&#39;Al&#39;</span><span class="p">]))</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
potential.pair_info([&#39;Al&#39;, &#39;Al&#39;, &#39;Al&#39;]) -&gt;
print &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;
print &#34;Publication(s) related to the potential:&#34;
print &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;
print &#34;Parameter file(s) can be downloaded at:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;
pair_style meam
pair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam Al Al Al
mass 1 26.9815
mass 2 26.9815
mass 3 26.9815


</pre></div></div>
</div>
</div>
</div>
<div class="section" id="3.-Generate-initial-system">
<h2>3. Generate initial system<a class="headerlink" href="#3.-Generate-initial-system" title="Permalink to this headline">¶</a></h2>
<div class="section" id="3.1.-Load-relaxed-crystal">
<h3>3.1. Load relaxed crystal<a class="headerlink" href="#3.1.-Load-relaxed-crystal" title="Permalink to this headline">¶</a></h3>
<p>A crystalline system can be easily generated using a unit cell system either defined in atomman, imported from another format, or accessed from the potentials database. For simplicity, here we will get the relaxed fcc structure for the potential.</p>
<p>Load fcc prototype with Al lattice constant</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[7]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">system</span> <span class="o">=</span> <span class="n">am</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s1">&#39;crystal&#39;</span><span class="p">,</span> <span class="n">family</span><span class="o">=</span><span class="s1">&#39;A1--Cu--fcc&#39;</span><span class="p">,</span> <span class="n">potential</span><span class="o">=</span><span class="n">potential</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">system</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
avect =  [ 4.050,  0.000,  0.000]
bvect =  [ 0.000,  4.050,  0.000]
cvect =  [ 0.000,  0.000,  4.050]
origin = [ 0.000,  0.000,  0.000]
natoms = 4
natypes = 1
symbols = (&#39;Al&#39;,)
pbc = [ True  True  True]
per-atom properties = [&#39;atype&#39;, &#39;pos&#39;]
     id |   atype |  pos[0] |  pos[1] |  pos[2]
      0 |       1 |   0.000 |   0.000 |   0.000
      1 |       1 |   0.000 |   2.025 |   2.025
      2 |       1 |   2.025 |   0.000 |   2.025
      3 |       1 |   2.025 |   2.025 |   0.000
</pre></div></div>
</div>
</div>
<div class="section" id="3.2.-Manipulate-system">
<h3>3.2. Manipulate system<a class="headerlink" href="#3.2.-Manipulate-system" title="Permalink to this headline">¶</a></h3>
<p>More complicated atomic configurations can then be generated by manipulating the seed system and the atoms contained within. Here, we’ll limit the manipulations to making the system a 3x3x3 supercell of itself.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[8]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">system</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">supersize</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">3</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">&#39;Supercell has&#39;</span><span class="p">,</span> <span class="n">system</span><span class="o">.</span><span class="n">natoms</span><span class="p">,</span> <span class="s1">&#39;atoms&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
Supercell has 108 atoms
</pre></div></div>
</div>
</div>
<div class="section" id="3.3.-Save-to-atom-data-file">
<h3>3.3. Save to atom data file<a class="headerlink" href="#3.3.-Save-to-atom-data-file" title="Permalink to this headline">¶</a></h3>
<p>System.dump(‘atom_data’) outputs the system to a LAMMPS atom data file. Quick notes on the parameters used here</p>
<ul class="simple">
<li><p>Giving potential allows for the appropriate units and atom_style settings to be used.</p></li>
<li><p>The float_format value used here is a small precision to enhance clarity of print statements below. Typically, the precision should be large (default value is ‘%.13f’).</p></li>
<li><p>Setting return_pair_info=True will return the LAMMPS commands for both the system and the potential together. This is the preferred method as it ensures compatibility with all potential pair styles currently in the database.</p></li>
</ul>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[9]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Save System to &#39;atom.dat&#39; atom data file</span>
<span class="n">system_pair_info</span> <span class="o">=</span> <span class="n">system</span><span class="o">.</span><span class="n">dump</span><span class="p">(</span><span class="s1">&#39;atom_data&#39;</span><span class="p">,</span> <span class="n">f</span><span class="o">=</span><span class="s1">&#39;atom.dat&#39;</span><span class="p">,</span>
                          <span class="n">potential</span><span class="o">=</span><span class="n">potential</span><span class="p">,</span>
                          <span class="n">float_format</span><span class="o">=</span><span class="s1">&#39;</span><span class="si">%.4f</span><span class="s1">&#39;</span><span class="p">,</span>    <span class="c1"># Remove or make larger precision for real runs!</span>
                          <span class="p">)</span>
</pre></div>
</div>
</div>
<p>Show the returned LAMMPS command lines</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[10]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="n">system_pair_info</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
units metal
atom_style atomic

boundary p p p
read_data atom.dat

print &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;
print &#34;Publication(s) related to the potential:&#34;
print &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;
print &#34;Parameter file(s) can be downloaded at:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;
pair_style meam
pair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam Al
mass 1 26.9815


</pre></div></div>
</div>
<p>Show the contents of the data file</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[11]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;atom.dat&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>

108 atoms
1 atom types
0.0000 12.1500 xlo xhi
0.0000 12.1500 ylo yhi
0.0000 12.1500 zlo zhi

Atoms # atomic

1 1 0.0000 0.0000 0.0000
2 1 0.0000 2.0250 2.0250
3 1 2.0250 0.0000 2.0250
4 1 2.0250 2.0250 0.0000
5 1 4.0500 0.0000 0.0000
6 1 4.0500 2.0250 2.0250
7 1 6.0750 0.0000 2.0250
8 1 6.0750 2.0250 0.0000
9 1 8.1000 0.0000 0.0000
10 1 8.1000 2.0250 2.0250
11 1 10.1250 0.0000 2.0250
12 1 10.1250 2.0250 0.0000
13 1 0.0000 4.0500 0.0000
14 1 0.0000 6.0750 2.0250
15 1 2.0250 4.0500 2.0250
16 1 2.0250 6.0750 0.0000
17 1 4.0500 4.0500 0.0000
18 1 4.0500 6.0750 2.0250
19 1 6.0750 4.0500 2.0250
20 1 6.0750 6.0750 0.0000
21 1 8.1000 4.0500 0.0000
22 1 8.1000 6.0750 2.0250
23 1 10.1250 4.0500 2.0250
24 1 10.1250 6.0750 0.0000
25 1 0.0000 8.1000 0.0000
26 1 0.0000 10.1250 2.0250
27 1 2.0250 8.1000 2.0250
28 1 2.0250 10.1250 0.0000
29 1 4.0500 8.1000 0.0000
30 1 4.0500 10.1250 2.0250
31 1 6.0750 8.1000 2.0250
32 1 6.0750 10.1250 0.0000
33 1 8.1000 8.1000 0.0000
34 1 8.1000 10.1250 2.0250
35 1 10.1250 8.1000 2.0250
36 1 10.1250 10.1250 0.0000
37 1 0.0000 0.0000 4.0500
38 1 0.0000 2.0250 6.0750
39 1 2.0250 0.0000 6.0750
40 1 2.0250 2.0250 4.0500
41 1 4.0500 0.0000 4.0500
42 1 4.0500 2.0250 6.0750
43 1 6.0750 0.0000 6.0750
44 1 6.0750 2.0250 4.0500
45 1 8.1000 0.0000 4.0500
46 1 8.1000 2.0250 6.0750
47 1 10.1250 0.0000 6.0750
48 1 10.1250 2.0250 4.0500
49 1 0.0000 4.0500 4.0500
50 1 0.0000 6.0750 6.0750
51 1 2.0250 4.0500 6.0750
52 1 2.0250 6.0750 4.0500
53 1 4.0500 4.0500 4.0500
54 1 4.0500 6.0750 6.0750
55 1 6.0750 4.0500 6.0750
56 1 6.0750 6.0750 4.0500
57 1 8.1000 4.0500 4.0500
58 1 8.1000 6.0750 6.0750
59 1 10.1250 4.0500 6.0750
60 1 10.1250 6.0750 4.0500
61 1 0.0000 8.1000 4.0500
62 1 0.0000 10.1250 6.0750
63 1 2.0250 8.1000 6.0750
64 1 2.0250 10.1250 4.0500
65 1 4.0500 8.1000 4.0500
66 1 4.0500 10.1250 6.0750
67 1 6.0750 8.1000 6.0750
68 1 6.0750 10.1250 4.0500
69 1 8.1000 8.1000 4.0500
70 1 8.1000 10.1250 6.0750
71 1 10.1250 8.1000 6.0750
72 1 10.1250 10.1250 4.0500
73 1 0.0000 0.0000 8.1000
74 1 0.0000 2.0250 10.1250
75 1 2.0250 0.0000 10.1250
76 1 2.0250 2.0250 8.1000
77 1 4.0500 0.0000 8.1000
78 1 4.0500 2.0250 10.1250
79 1 6.0750 0.0000 10.1250
80 1 6.0750 2.0250 8.1000
81 1 8.1000 0.0000 8.1000
82 1 8.1000 2.0250 10.1250
83 1 10.1250 0.0000 10.1250
84 1 10.1250 2.0250 8.1000
85 1 0.0000 4.0500 8.1000
86 1 0.0000 6.0750 10.1250
87 1 2.0250 4.0500 10.1250
88 1 2.0250 6.0750 8.1000
89 1 4.0500 4.0500 8.1000
90 1 4.0500 6.0750 10.1250
91 1 6.0750 4.0500 10.1250
92 1 6.0750 6.0750 8.1000
93 1 8.1000 4.0500 8.1000
94 1 8.1000 6.0750 10.1250
95 1 10.1250 4.0500 10.1250
96 1 10.1250 6.0750 8.1000
97 1 0.0000 8.1000 8.1000
98 1 0.0000 10.1250 10.1250
99 1 2.0250 8.1000 10.1250
100 1 2.0250 10.1250 8.1000
101 1 4.0500 8.1000 8.1000
102 1 4.0500 10.1250 10.1250
103 1 6.0750 8.1000 10.1250
104 1 6.0750 10.1250 8.1000
105 1 8.1000 8.1000 8.1000
106 1 8.1000 10.1250 10.1250
107 1 10.1250 8.1000 10.1250
108 1 10.1250 10.1250 8.1000

</pre></div></div>
</div>
</div>
</div>
<div class="section" id="4.-Converting-to/from-LAMMPS-units">
<h2>4. Converting to/from LAMMPS units<a class="headerlink" href="#4.-Converting-to/from-LAMMPS-units" title="Permalink to this headline">¶</a></h2>
<p>LAMMPS performs its calculations with values in one of multiple sets of pre-defined units. The atomman.lammps.style submodule has some useful functions when working with different units options.</p>
<p><strong>atomman.lammps.style.timestep()</strong></p>
<p>The lammps.style.timestep() function returns the default timestep value for a given LAMMPS units option.</p>
<p>Parameters</p>
<ul class="simple">
<li><p><strong>units</strong> (<em>str</em>) the LAMMPS units option being used.</p></li>
</ul>
<p><strong>atomman.lammps.style.unit()</strong></p>
<p>The lammps.style.unit() function returns a dictionary giving the units associated with physical quantities as used by LAMMPS with a given units option.</p>
<p>Parameters</p>
<ul class="simple">
<li><p><strong>units</strong> (<em>str</em>) the LAMMPS units option being used.</p></li>
</ul>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[12]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">timestep</span> <span class="o">=</span> <span class="n">lmp</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">timestep</span><span class="p">(</span><span class="n">potential</span><span class="o">.</span><span class="n">units</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">timestep</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
0.001
</pre></div></div>
</div>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[13]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">lammps_unit</span> <span class="o">=</span> <span class="n">lmp</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">unit</span><span class="p">(</span><span class="n">potential</span><span class="o">.</span><span class="n">units</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">lammps_unit</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
OrderedDict([(&#39;mass&#39;, &#39;g/mol&#39;), (&#39;length&#39;, &#39;angstrom&#39;), (&#39;time&#39;, &#39;ps&#39;), (&#39;energy&#39;, &#39;eV&#39;), (&#39;velocity&#39;, &#39;angstrom/ps&#39;), (&#39;force&#39;, &#39;eV/angstrom&#39;), (&#39;torque&#39;, &#39;eV&#39;), (&#39;temperature&#39;, &#39;K&#39;), (&#39;pressure&#39;, &#39;bar&#39;), (&#39;dynamic viscosity&#39;, &#39;Pa*s/10&#39;), (&#39;charge&#39;, &#39;e&#39;), (&#39;dipole&#39;, &#39;e*angstrom&#39;), (&#39;electric field&#39;, &#39;V/angstrom&#39;), (&#39;density&#39;, &#39;g/cm^3&#39;), (&#39;ang-mom&#39;, &#39;angstrom*angstrom/ps*g/mol&#39;), (&#39;ang-vel&#39;, &#39;1/ps&#39;)])
</pre></div></div>
</div>
</div>
<div class="section" id="5.-Composing-LAMMPS-Input-Scripts">
<h2>5. Composing LAMMPS Input Scripts<a class="headerlink" href="#5.-Composing-LAMMPS-Input-Scripts" title="Permalink to this headline">¶</a></h2>
<p>LAMMPS scripts can easily be constructed by combining the system_info generated from System.dump(‘atom_data’), the pair_info from Potential.pair_info(), and any user-defined input lines. This allows for specific simulation actions to easily be perfored across different potentials or initial configurations.</p>
<div class="section" id="5.1.-Show-content-generated-in-previous-sections">
<h3>5.1. Show content generated in previous sections<a class="headerlink" href="#5.1.-Show-content-generated-in-previous-sections" title="Permalink to this headline">¶</a></h3>
<p>Show system_pair_info generated in Section 3.3.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[14]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="n">system_pair_info</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
units metal
atom_style atomic

boundary p p p
read_data atom.dat

print &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;
print &#34;Publication(s) related to the potential:&#34;
print &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;
print &#34;Parameter file(s) can be downloaded at:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;
pair_style meam
pair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam Al
mass 1 26.9815


</pre></div></div>
</div>
</div>
<div class="section" id="5.2.-Write-LAMMPS-input-script-template">
<h3>5.2. Write LAMMPS input script template<a class="headerlink" href="#5.2.-Write-LAMMPS-input-script-template" title="Permalink to this headline">¶</a></h3>
<p>LAMMPS scripts can be dynamically generated using Python functions or templates that take the above info lines and other values as parameters. Here, we demonstrate a LAMMPS input template script where all fields to be filled in in Python are delimited with &lt;&gt; brackets.</p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[15]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">template</span> <span class="o">=</span> <span class="s2">&quot;&quot;&quot;</span>
<span class="s2">&lt;system_pair_info&gt;</span>

<span class="s2"># Define temperature and dependent variables</span>
<span class="s2">variable T equal &lt;temperature&gt;</span>
<span class="s2">variable twoT equal 2*$T</span>

<span class="s2"># Define equilibrium pressure</span>
<span class="s2">variable P equal &lt;pressure&gt;</span>

<span class="s2"># Define timestep and dependent variables</span>
<span class="s2">variable deltat equal &lt;timestep&gt;</span>
<span class="s2">variable Trelax equal 100*$</span><span class="si">{deltat}</span><span class="s2"></span>
<span class="s2">variable Prelax equal 1000*$</span><span class="si">{deltat}</span><span class="s2"></span>

<span class="s2"># Initialize atomic velocities with twoT</span>
<span class="s2">velocity all create $</span><span class="si">{twoT}</span><span class="s2"> 124352</span>

<span class="s2"># Define thermo steps and properties</span>
<span class="s2">thermo 100</span>
<span class="s2">thermo_style custom step temp press lx ly lz</span>

<span class="s2"># Define dump</span>
<span class="s2">dump mydump all atom 100000 *.dump</span>

<span class="s2"># Specify timestep</span>
<span class="s2">timestep $</span><span class="si">{deltat}</span><span class="s2"></span>

<span class="s2"># Apply npt conditions</span>
<span class="s2">fix 1 all npt temp $T $T $</span><span class="si">{Trelax}</span><span class="s2"> iso $P $P $</span><span class="si">{Prelax}</span><span class="s2"></span>

<span class="s2"># Run simulation</span>
<span class="s2">run 100000</span>
<span class="s2">&quot;&quot;&quot;</span>
</pre></div>
</div>
</div>
</div>
<div class="section" id="5.3.-Fill-in-the-template-with-atomman.tools.filltemplate()">
<h3>5.3. Fill in the template with atomman.tools.filltemplate()<a class="headerlink" href="#5.3.-Fill-in-the-template-with-atomman.tools.filltemplate()" title="Permalink to this headline">¶</a></h3>
<p>The template can then be easily filled in with the atomman.tools.filltemplate() function.</p>
<p>Parameters</p>
<ul class="simple">
<li><p><strong>template</strong> (<em>str or file-like object</em>) is the template to fill in.</p></li>
<li><p><strong>variable</strong> (<em>dict</em>) gives the delimited keys and corresponding values to insert into the template.</p></li>
<li><p><strong>s_delimiter</strong> (<em>str</em>) the starting delimiter for identifying variable names.</p></li>
<li><p><strong>e_delimiter</strong> (<em>str</em>) the ending delimiter for identifying variable names.</p></li>
</ul>
<p>Build dictionary of template variables</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[16]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">lammps_variable</span> <span class="o">=</span> <span class="p">{}</span>

<span class="c1"># Generated above</span>
<span class="n">lammps_variable</span><span class="p">[</span><span class="s1">&#39;system_pair_info&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">system_pair_info</span>

<span class="c1"># Set timestep to default value for LAMMPS units</span>
<span class="n">lammps_variable</span><span class="p">[</span><span class="s1">&#39;timestep&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">lmp</span><span class="o">.</span><span class="n">style</span><span class="o">.</span><span class="n">timestep</span><span class="p">(</span><span class="n">units</span><span class="o">=</span><span class="n">potential</span><span class="o">.</span><span class="n">units</span><span class="p">)</span>

<span class="c1"># Specify temperature to equilibriate at (always in Kelvin)</span>
<span class="n">lammps_variable</span><span class="p">[</span><span class="s1">&#39;temperature&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="mi">100</span>

<span class="c1"># Specify pressure to equilibriate at</span>
<span class="n">pressure</span> <span class="o">=</span> <span class="n">uc</span><span class="o">.</span><span class="n">set_in_units</span><span class="p">(</span><span class="mf">0.0</span><span class="p">,</span> <span class="s1">&#39;MPa&#39;</span><span class="p">)</span>
<span class="n">lammps_variable</span><span class="p">[</span><span class="s1">&#39;pressure&#39;</span><span class="p">]</span> <span class="o">=</span> <span class="n">uc</span><span class="o">.</span><span class="n">get_in_units</span><span class="p">(</span><span class="n">pressure</span><span class="p">,</span> <span class="n">lammps_unit</span><span class="p">[</span><span class="s1">&#39;pressure&#39;</span><span class="p">])</span>

<span class="nb">print</span><span class="p">(</span><span class="n">lammps_variable</span><span class="p">)</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
{&#39;system_pair_info&#39;: &#39;units metal\natom_style atomic\n\nboundary p p p\nread_data atom.dat\n\nprint &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;\nprint &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;\nprint &#34;Publication(s) related to the potential:&#34;\nprint &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;\nprint &#34;Parameter file(s) can be downloaded at:&#34;\nprint &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;\nprint &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;\npair_style meam\npair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\\Al.meam Al\nmass 1 26.9815\n\n&#39;, &#39;timestep&#39;: 0.001, &#39;temperature&#39;: 100, &#39;pressure&#39;: 0.0}
</pre></div></div>
</div>
<p>Fill in template</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[17]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Generate script from template and lammps_variable</span>
<span class="n">script</span> <span class="o">=</span> <span class="n">am</span><span class="o">.</span><span class="n">tools</span><span class="o">.</span><span class="n">filltemplate</span><span class="p">(</span><span class="n">template</span><span class="p">,</span> <span class="n">lammps_variable</span><span class="p">,</span> <span class="s1">&#39;&lt;&#39;</span><span class="p">,</span> <span class="s1">&#39;&gt;&#39;</span><span class="p">)</span>

<span class="c1"># Save script to &#39;nvt.in&#39;</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;nvt.in&#39;</span><span class="p">,</span> <span class="s1">&#39;w&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="n">script</span><span class="p">)</span>

<span class="c1"># Show contents of &#39;nvt.in&#39;</span>
<span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="s1">&#39;nvt.in&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
    <span class="nb">print</span><span class="p">(</span><span class="n">f</span><span class="o">.</span><span class="n">read</span><span class="p">())</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>

units metal
atom_style atomic

boundary p p p
read_data atom.dat

print &#34;Potential 2015--Pascuet-M-I--Al--LAMMPS--ipr1 listed in the NIST Interatomic Potentials Repository:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/entry/2015--Pascuet-M-I-Fernandez-J-R--Al/2015--Pascuet-M-I--Al--LAMMPS--ipr1.html&#34;
print &#34;Publication(s) related to the potential:&#34;
print &#34;https://doi.org/10.1016/j.jnucmat.2015.09.030&#34;
print &#34;Parameter file(s) can be downloaded at:&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/Al.meam&#34;
print &#34;https://www.ctcms.nist.gov/potentials/Download/2015--Pascuet-M-I-Fernandez-J-R--Al/1/library-Al.meam&#34;
pair_style meam
pair_coeff * * 2015--Pascuet-M-I--Al--LAMMPS--ipr1\library-Al.meam Al 2015--Pascuet-M-I--Al--LAMMPS--ipr1\Al.meam Al
mass 1 26.9815



# Define temperature and dependent variables
variable T equal 100
variable twoT equal 2*$T

# Define equilibrium pressure
variable P equal 0.0

# Define timestep and dependent variables
variable deltat equal 0.001
variable Trelax equal 100*${deltat}
variable Prelax equal 1000*${deltat}

# Initialize atomic velocities with twoT
velocity all create ${twoT} 124352

# Define thermo steps and properties
thermo 100
thermo_style custom step temp press lx ly lz

# Define dump
dump mydump all atom 100000 *.dump

# Specify timestep
timestep ${deltat}

# Apply npt conditions
fix 1 all npt temp $T $T ${Trelax} iso $P $P ${Prelax}

# Run simulation
run 100000

</pre></div></div>
</div>
</div>
</div>
<div class="section" id="6.-Run-LAMMPS">
<h2>6. Run LAMMPS<a class="headerlink" href="#6.-Run-LAMMPS" title="Permalink to this headline">¶</a></h2>
<p>The LAMMPS simulation can be ran from within Python using the run() function.</p>
<p>Specify your lammps executable</p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[18]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">lammps_exe</span> <span class="o">=</span> <span class="s1">&#39;lmp_serial&#39;</span>
</pre></div>
</div>
</div>
<p>Run the simulation</p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[19]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">output</span> <span class="o">=</span> <span class="n">lmp</span><span class="o">.</span><span class="n">run</span><span class="p">(</span><span class="n">lammps_exe</span><span class="p">,</span> <span class="s1">&#39;nvt.in&#39;</span><span class="p">)</span>
</pre></div>
</div>
</div>
<p>The resulting simulation data is returned as a Log object, which containes the thermo data from the log.lammps files.</p>
</div>
<div class="section" id="7.-Analyzing-Thermo-Results">
<h2>7. Analyzing Thermo Results<a class="headerlink" href="#7.-Analyzing-Thermo-Results" title="Permalink to this headline">¶</a></h2>
<p>Data for each simulation run/minimization is stored in the returned Log object. Each Simulation has a thermo property that is a pandas.DataFrame of the LAMMPS thermo data.</p>
<p><em>Updated version 1.3.7</em>: Each simulation is now represented using a Simulation class rather than a dictionary.</p>
<p>Show thermo data column names for the first (and only) simulation run.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[20]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">thermo</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
[&#39;Step&#39;, &#39;Temp&#39;, &#39;Press&#39;, &#39;Lx&#39;, &#39;Ly&#39;, &#39;Lz&#39;]
</pre></div></div>
</div>
<p>For backwards compatibility, the thermo can also be accessed as if the simulation was still a dictionary.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[21]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="nb">print</span><span class="p">(</span><span class="nb">list</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="s1">&#39;thermo&#39;</span><span class="p">]</span><span class="o">.</span><span class="n">keys</span><span class="p">()))</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
[&#39;Step&#39;, &#39;Temp&#39;, &#39;Press&#39;, &#39;Lx&#39;, &#39;Ly&#39;, &#39;Lz&#39;]
</pre></div></div>
</div>
<p>Plot temperature vs. run step</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[22]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Pull out data</span>
<span class="n">steps</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">thermo</span><span class="o">.</span><span class="n">Step</span>
<span class="n">temps</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">thermo</span><span class="o">.</span><span class="n">Temp</span>

<span class="c1"># Plot</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">steps</span><span class="p">,</span> <span class="n">temps</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Step&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Temperature (K)&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<img alt="../_images/tutorial_2._LAMMPS_functionality_53_0.png" src="../_images/tutorial_2._LAMMPS_functionality_53_0.png" />
</div>
</div>
<p>Plot pressure vs. run step (note unit conversions)</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[23]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="c1"># Convert steps to time in atomman working units</span>
<span class="n">steps</span> <span class="o">=</span> <span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">thermo</span><span class="o">.</span><span class="n">Step</span>
<span class="n">time</span> <span class="o">=</span> <span class="n">uc</span><span class="o">.</span><span class="n">set_in_units</span><span class="p">(</span><span class="n">timestep</span><span class="p">,</span> <span class="n">lammps_unit</span><span class="p">[</span><span class="s1">&#39;time&#39;</span><span class="p">])</span> <span class="o">*</span> <span class="n">steps</span>

<span class="c1"># Convert press to atomman working units</span>
<span class="n">press</span> <span class="o">=</span> <span class="n">uc</span><span class="o">.</span><span class="n">set_in_units</span><span class="p">(</span><span class="n">output</span><span class="o">.</span><span class="n">simulations</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">thermo</span><span class="o">.</span><span class="n">Press</span><span class="p">,</span> <span class="n">lammps_unit</span><span class="p">[</span><span class="s1">&#39;pressure&#39;</span><span class="p">])</span>

<span class="c1"># Plot in ps and GPa</span>
<span class="n">plt</span><span class="o">.</span><span class="n">plot</span><span class="p">(</span><span class="n">uc</span><span class="o">.</span><span class="n">get_in_units</span><span class="p">(</span><span class="n">steps</span><span class="p">,</span> <span class="s1">&#39;ps&#39;</span><span class="p">),</span> <span class="n">uc</span><span class="o">.</span><span class="n">get_in_units</span><span class="p">(</span><span class="n">press</span><span class="p">,</span> <span class="s1">&#39;GPa&#39;</span><span class="p">))</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s1">&#39;Time (ps)&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s1">&#39;Pressure (GPa)&#39;</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<img alt="../_images/tutorial_2._LAMMPS_functionality_55_0.png" src="../_images/tutorial_2._LAMMPS_functionality_55_0.png" />
</div>
</div>
</div>
<div class="section" id="8-Reading-in-dump-files">
<h2>8 Reading in dump files<a class="headerlink" href="#8-Reading-in-dump-files" title="Permalink to this headline">¶</a></h2>
<p>Finally, any dump files generated by the LAMMPS simulation can be loaded into atomman as Systems.</p>
<div class="nbinput docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[24]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="n">system</span> <span class="o">=</span> <span class="n">am</span><span class="o">.</span><span class="n">load</span><span class="p">(</span><span class="s1">&#39;atom_dump&#39;</span><span class="p">,</span> <span class="s1">&#39;100000.dump&#39;</span><span class="p">,</span> <span class="n">symbols</span><span class="o">=</span><span class="s1">&#39;Al&#39;</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">system</span><span class="o">.</span><span class="n">box</span><span class="p">)</span>
<span class="n">system</span><span class="o">.</span><span class="n">atoms_df</span><span class="p">()</span>
</pre></div>
</div>
</div>
<div class="nboutput docutils container">
<div class="prompt empty docutils container">
</div>
<div class="output_area docutils container">
<div class="highlight"><pre>
avect =  [12.191,  0.000,  0.000]
bvect =  [ 0.000, 12.191,  0.000]
cvect =  [ 0.000,  0.000, 12.191]
origin = [-0.021, -0.021, -0.021]
</pre></div></div>
</div>
<div class="nboutput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[24]:
</pre></div>
</div>
<div class="output_area rendered_html docutils container">
<div>
<style scoped>
    .dataframe tbody tr th:only-of-type {
        vertical-align: middle;
    }

    .dataframe tbody tr th {
        vertical-align: top;
    }

    .dataframe thead th {
        text-align: right;
    }
</style>
<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>atype</th>
      <th>pos[0]</th>
      <th>pos[1]</th>
      <th>pos[2]</th>
      <th>atom_id</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>0</td>
      <td>1</td>
      <td>0.003687</td>
      <td>-0.060490</td>
      <td>-0.023425</td>
      <td>1</td>
    </tr>
    <tr>
      <td>1</td>
      <td>1</td>
      <td>-0.054033</td>
      <td>2.032270</td>
      <td>1.997684</td>
      <td>2</td>
    </tr>
    <tr>
      <td>2</td>
      <td>1</td>
      <td>2.055068</td>
      <td>0.018910</td>
      <td>1.980677</td>
      <td>3</td>
    </tr>
    <tr>
      <td>3</td>
      <td>1</td>
      <td>1.997684</td>
      <td>2.080987</td>
      <td>-0.002075</td>
      <td>4</td>
    </tr>
    <tr>
      <td>4</td>
      <td>1</td>
      <td>4.081188</td>
      <td>0.036592</td>
      <td>-0.051009</td>
      <td>5</td>
    </tr>
    <tr>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
      <td>...</td>
    </tr>
    <tr>
      <td>103</td>
      <td>1</td>
      <td>6.042340</td>
      <td>10.090836</td>
      <td>8.060340</td>
      <td>104</td>
    </tr>
    <tr>
      <td>104</td>
      <td>1</td>
      <td>8.037871</td>
      <td>8.044527</td>
      <td>8.075286</td>
      <td>105</td>
    </tr>
    <tr>
      <td>105</td>
      <td>1</td>
      <td>8.068666</td>
      <td>10.122228</td>
      <td>10.109220</td>
      <td>106</td>
    </tr>
    <tr>
      <td>106</td>
      <td>1</td>
      <td>10.135773</td>
      <td>8.173499</td>
      <td>10.091238</td>
      <td>107</td>
    </tr>
    <tr>
      <td>107</td>
      <td>1</td>
      <td>10.139345</td>
      <td>10.137333</td>
      <td>8.031605</td>
      <td>108</td>
    </tr>
  </tbody>
</table>
<p>108 rows × 5 columns</p>
</div></div>
</div>
<p><strong>File Cleanup</strong></p>
<div class="nbinput nblast docutils container">
<div class="prompt highlight-none notranslate"><div class="highlight"><pre><span></span>[25]:
</pre></div>
</div>
<div class="input_area highlight-ipython3 notranslate"><div class="highlight"><pre>
<span></span><span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">Path</span><span class="p">(</span><span class="n">pot_id</span><span class="p">)</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="s1">&#39;*&#39;</span><span class="p">):</span>
    <span class="n">fname</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
<span class="n">Path</span><span class="p">(</span><span class="n">pot_id</span><span class="p">)</span><span class="o">.</span><span class="n">rmdir</span><span class="p">()</span>
<span class="n">Path</span><span class="p">(</span><span class="s1">&#39;atom.dat&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
<span class="n">Path</span><span class="p">(</span><span class="s1">&#39;nvt.in&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
<span class="n">Path</span><span class="p">(</span><span class="s1">&#39;log.lammps&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>

<span class="k">for</span> <span class="n">fname</span> <span class="ow">in</span> <span class="n">Path</span><span class="p">(</span><span class="s1">&#39;.&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">glob</span><span class="p">(</span><span class="s1">&#39;*.dump&#39;</span><span class="p">):</span>
    <span class="n">fname</span><span class="o">.</span><span class="n">unlink</span><span class="p">()</span>
</pre></div>
</div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../index.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Introduction to atomman: LAMMPS functionality</a><ul>
<li><a class="reference internal" href="#1.-Introduction">1. Introduction</a></li>
<li><a class="reference internal" href="#2.-Interatomic-Potential-Control">2. Interatomic Potential Control</a><ul>
<li><a class="reference internal" href="#2.1.-Load-potential-from-database">2.1. Load potential from database</a></li>
<li><a class="reference internal" href="#2.2.-Potential-parameter-files">2.2. Potential parameter files</a></li>
<li><a class="reference internal" href="#2.3.-lammps.Potential-Class">2.3. lammps.Potential Class</a></li>
</ul>
</li>
<li><a class="reference internal" href="#3.-Generate-initial-system">3. Generate initial system</a><ul>
<li><a class="reference internal" href="#3.1.-Load-relaxed-crystal">3.1. Load relaxed crystal</a></li>
<li><a class="reference internal" href="#3.2.-Manipulate-system">3.2. Manipulate system</a></li>
<li><a class="reference internal" href="#3.3.-Save-to-atom-data-file">3.3. Save to atom data file</a></li>
</ul>
</li>
<li><a class="reference internal" href="#4.-Converting-to/from-LAMMPS-units">4. Converting to/from LAMMPS units</a></li>
<li><a class="reference internal" href="#5.-Composing-LAMMPS-Input-Scripts">5. Composing LAMMPS Input Scripts</a><ul>
<li><a class="reference internal" href="#5.1.-Show-content-generated-in-previous-sections">5.1. Show content generated in previous sections</a></li>
<li><a class="reference internal" href="#5.2.-Write-LAMMPS-input-script-template">5.2. Write LAMMPS input script template</a></li>
<li><a class="reference internal" href="#5.3.-Fill-in-the-template-with-atomman.tools.filltemplate()">5.3. Fill in the template with atomman.tools.filltemplate()</a></li>
</ul>
</li>
<li><a class="reference internal" href="#6.-Run-LAMMPS">6. Run LAMMPS</a></li>
<li><a class="reference internal" href="#7.-Analyzing-Thermo-Results">7. Analyzing Thermo Results</a></li>
<li><a class="reference internal" href="#8-Reading-in-dump-files">8 Reading in dump files</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="1.5._Settings_and_databases.html"
                        title="previous chapter">Introduction to atomman: Settings and Library</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="2.1._Potential_class.html"
                        title="next chapter">Introduction to atomman: LAMMPS Potentials</a></p>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="../py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="2.1._Potential_class.html" title="Introduction to atomman: LAMMPS Potentials"
             >next</a> |</li>
        <li class="right" >
          <a href="1.5._Settings_and_databases.html" title="Introduction to atomman: Settings and Library"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="../index.html">atomman 1.4.0 documentation</a> &#187;</li>
          <li class="nav-item nav-item-1"><a href="index.html" >Tutorials</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 2.2.0.
    </div>
  </body>
</html>